home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / raytrace / rayshade / graphtal.lzh / Graphtal.Amiga / BoundingBox.h < prev    next >
C/C++ Source or Header  |  1992-11-17  |  1KB  |  51 lines

  1. /*
  2.  * BoundingBox.h - definition of class BoundingBox.
  3.  *
  4.  * Copyright (C) 1992, Christoph Streit (streit@iam.unibe.ch)
  5.  *                     University of Berne, Switzerland
  6.  * All rights reserved.
  7.  *
  8.  * This software may be freely copied, modified, and redistributed
  9.  * provided that this copyright notice is preserved on all copies.
  10.  *
  11.  * You may not distribute this software, in whole or in part, as part of
  12.  * any commercial product without the express consent of the authors.
  13.  *
  14.  * There is no warranty or other guarantee of fitness of this software
  15.  * for any purpose.  It is provided solely "as is".
  16.  *
  17.  */
  18.  
  19. #ifndef BoundingBox_H
  20. # define BoundingBox_H
  21.  
  22. #include "Vector.h"
  23.  
  24. //___________________________________________________________ BoundingBox
  25.  
  26. class TransMatrix;
  27.  
  28. class BoundingBox
  29. {
  30. public:
  31.   BoundingBox();
  32.  
  33.   void expand(const Vector&);
  34.   void expand(const BoundingBox&);
  35.   BoundingBox transform(const TransMatrix&) const;
  36.   real xmin() const { return vmin[0]; }
  37.   real xmax() const { return vmax[0]; }
  38.   real ymin() const { return vmin[1]; }
  39.   real ymax() const { return vmax[1]; }
  40.   real zmin() const { return vmin[2]; }
  41.   real zmax() const { return vmax[2]; }
  42.  
  43.   friend ostream& operator<<(ostream&, const BoundingBox&);
  44.  
  45. private:
  46.   Vector vmin, vmax;
  47. };
  48.  
  49. #endif // BoundingBox
  50.  
  51.